(function () {
    var Layer = YYC.AClass(Collection,{
        Init: function () {},
        Private:{
            __getContext:function () {
                this.P__context = this.P__canvas.getContext('2d')
            }
        },
        Protected:{
            P__canvas: null,
            P__context: null,
            Abstract: {
                P__createCanvas: function () {}
            }
        },
        Public:{
            setCanvas:function () {
                this.P__createCanvas()
            },
            Virtual:{
                init:function () {
                    this.__getContext()
                }
            }
        },
        Abstract:{
            draw:function () {},
            render: function () {}
        }
    })
    window.Layer = Layer
}())